1. Field of the Invention
The present invention relates generally to computer system that includes a database communication system and a method for communicating with a database. More particularly, the present invention relates to computer system and its associated software for accessing data stored in a database wherein the database may be located either remotely or locally from the user""s computing device executing such software. The present invention also operates independently of database type.
2. Description of the Prior Art
It is well known in the art to use computer software to access data, which is stored in a database locally on, for example, the hard disk of a personal computer or on removable media, such as an optical disk. Such software typically makes numerous calls to the database in performing any transaction therewith. When accessing the database locally, i.e., on the same device that is executing the software or on a local area network (xe2x80x9cLANxe2x80x9d), such numerous calls present little or no problem. However, when the device executing the software is located remotely from the database, for example, when the database is stored on a remote device and accessed via the Internet, a myriad of problems arise.
One such problem is the limited bandwidth available to the average user, who connects his personal computer to the Internet via a dial-up connection, i.e., via a modem.
An additional problem with the conventional method of accessing a database via the Internet stems from the use of xe2x80x9cbrowserxe2x80x9d software. Browser software may be appropriate for use in, for example, web navigation, consumer transactions, information retrieval and dissemination, and help and documentation systems. However, software for business applications, such as in the banking, insurance, securities and accounting disciplines, based on a browser model are generally inadequate in several respects. For developers authoring such business applications, the browser model adds a level of complexity to the authoring process. Generally, the browser model is based on transmitting raw data in addition to graphics files and programming instructions necessary for displaying such data and graphics files. However, for large, complex business-oriented applications, it is highly inefficient to transfer program code other than for an initial installation or subsequent application upgrade. As the use of the Internet increases and as Internet applications become increasingly complex, minimizing unnecessary traffic across the network will be critical for achieving maximum performance. Finally, current efforts to develop ever more sophisticated browser software, plug-in components and the like tend to create instabilities and compatibility problems.
There are numerous benefits gained by storing data locally and accessing the same without resort to Internet communication. One benefit is the execution speed and communication speed achieved.
One example of a business application ideally suited for data storage at a location remote from the user""s location and access of the database over the Internet is a so-called xe2x80x9ce-commercexe2x80x9d, or Internet shopping, system. The data stored and accessed in such a system would include, for example, product descriptions, product pictures, video clips, audio files, cross-reference information and current pricing. The database may further include customer records and accounts, prior purchase data, inventory records and order tracking, It is not uncommon, however, for a substantial amount of this data to be static, that is, unchanging over time or changing only occasionally. Such static data may be product descriptions and product pictures. A relatively small amount of data changes dynamically over time. Such dynamic data would include up-to-date pricing and inventory status. Given that available bandwidth is usually insufficient for instantaneous performance, it would be beneficial to store the static data, which does not require frequent updating, locally, relative to the end user, and to store the dynamic data, which would require frequent and/or real-time updating, remotely, relative to the end user. Thus, an end user accessing the database would retrieve a significant majority of the data from a local source, without resorting to Internet communication, while retrieving a very minor portion through the Internet. Clearly, the user would attain a substantial performance advantage over a user accessing all data via the Internet.
The present invention relates to a computer system and method, wherein database transactions are processed by packaging an entire transaction request, including all of the database calls necessary for performing the transaction, into a single communication. The results of the transaction are similarly packaged into a single communication and transmitted back to the user. Additionally, often a large portion of the database is stored locally, such as on a CD-ROM or hard drive, and only the dynamic portion of the database, such as updates, accessed remotely. Additionally, the CD-ROM could be periodically updated by a new CD-ROM or larger changes to the database could be accessed on-line at off-peak hours for extended periods.
With the use of this product, a corporation, for instance, can create a highly graphical e-commerce site that performs well over regular, slow telephone connections to the internet. The software which is employed by the client or end-user is typically Windows(copyright) based (or similar local operating system), but does not run in an internet browser. Rather the client or end-user software includes a full-featured custom Windows(copyright) application that goes directly to the standardized, build-in communication features of the local operating system. The application connects to the internet (and therethrough to the corporation""s internet servers and databases) through the same low-level communication and networking services used by the web browser and e-mail software. Typically, the client software is delivered by storage media such as a CD-ROM or network file transfer so that the user has local access to large portion of the static database and the program resides on the client machine. The installation would require only copying files to a single directory on the user""s hard drive and setting a maximum amount of space for local caching.
Additionally, the software of the present invention, by avoiding browser software, avoids inefficient layers of processing and further avoids the expense of generating an interpreting complex HTML. The software of the present invention is therefore able to go directly to the desired data via low-level protocols (such as TCP/IP) that are at the heart of the internet.
Similarly, the present invention uses several types of buffering, managed automatically on both the client and the server, which dramatically reduce network activity and database contention in large multi-user applications.